C2: Serialization with Pickler Combinators in Scala

Seminar

Writing serializers for runtime objects by hand is error-prone and tedious. Generating these serializers is a much saner approach - but how to approach this?

In functional programming land a common pattern for serialization (pickling) are pickler combinators. These compose simple serialization and deserialization functions into more complex ones. Sadly they have a few problems in OOP land (subtyping, cyclic object graphs, ...). The approach introduced by instant pickles takes compile-time information into account to generate these (de-)serializers - addressing the problems of FP-style pickler combinators in object-functional languages.

In this seminar, you will look into how instant pickles (the "Scala-way" of serialization) works. For the coding part of this seminar, you could look into how the serialization library of the authors works, compare it to FP-style pickler combinators or even look into a more recent pickler combinator generator in the Scala ecosystem.

References